home *** CD-ROM | disk | FTP | other *** search
/ Sky at Night 2007 June / SAN CD 6-2007 CD-ROM 25.iso / pc / Software / AstroGrav_Win / Java / jre1.6.0 / lib / rt.jar / javax / swing / DebugGraphics.class (.txt) < prev    next >
Encoding:
Java Class File  |  2006-11-29  |  14.6 KB  |  1,067 lines

  1. package javax.swing;
  2.  
  3. import java.awt.Color;
  4. import java.awt.Container;
  5. import java.awt.Font;
  6. import java.awt.FontMetrics;
  7. import java.awt.Graphics;
  8. import java.awt.Image;
  9. import java.awt.Point;
  10. import java.awt.Rectangle;
  11. import java.awt.Shape;
  12. import java.awt.Toolkit;
  13. import java.awt.image.FilteredImageSource;
  14. import java.awt.image.ImageObserver;
  15. import java.awt.image.ImageProducer;
  16. import java.io.PrintStream;
  17. import java.text.AttributedCharacterIterator;
  18.  
  19. public class DebugGraphics extends Graphics {
  20.    Graphics graphics;
  21.    Image buffer;
  22.    int debugOptions;
  23.    int graphicsID;
  24.    int xOffset;
  25.    int yOffset;
  26.    private static int graphicsCount = 0;
  27.    private static ImageIcon imageLoadingIcon = new ImageIcon();
  28.    public static final int LOG_OPTION = 1;
  29.    public static final int FLASH_OPTION = 2;
  30.    public static final int BUFFERED_OPTION = 4;
  31.    public static final int NONE_OPTION = -1;
  32.    private static final Class debugGraphicsInfoKey;
  33.  
  34.    public DebugGraphics() {
  35.       this.graphicsID = graphicsCount++;
  36.       this.buffer = null;
  37.       this.xOffset = this.yOffset = 0;
  38.    }
  39.  
  40.    public DebugGraphics(Graphics var1, JComponent var2) {
  41.       this(var1);
  42.       this.setDebugOptions(var2.shouldDebugGraphics());
  43.    }
  44.  
  45.    public DebugGraphics(Graphics var1) {
  46.       this();
  47.       this.graphics = var1;
  48.    }
  49.  
  50.    public Graphics create() {
  51.       DebugGraphics var1 = new DebugGraphics();
  52.       var1.graphics = this.graphics.create();
  53.       var1.debugOptions = this.debugOptions;
  54.       var1.buffer = this.buffer;
  55.       return var1;
  56.    }
  57.  
  58.    public Graphics create(int var1, int var2, int var3, int var4) {
  59.       DebugGraphics var5 = new DebugGraphics();
  60.       var5.graphics = this.graphics.create(var1, var2, var3, var4);
  61.       var5.debugOptions = this.debugOptions;
  62.       var5.buffer = this.buffer;
  63.       var5.xOffset = this.xOffset + var1;
  64.       var5.yOffset = this.yOffset + var2;
  65.       return var5;
  66.    }
  67.  
  68.    public static void setFlashColor(Color var0) {
  69.       info().flashColor = var0;
  70.    }
  71.  
  72.    public static Color flashColor() {
  73.       return info().flashColor;
  74.    }
  75.  
  76.    public static void setFlashTime(int var0) {
  77.       info().flashTime = var0;
  78.    }
  79.  
  80.    public static int flashTime() {
  81.       return info().flashTime;
  82.    }
  83.  
  84.    public static void setFlashCount(int var0) {
  85.       info().flashCount = var0;
  86.    }
  87.  
  88.    public static int flashCount() {
  89.       return info().flashCount;
  90.    }
  91.  
  92.    public static void setLogStream(PrintStream var0) {
  93.       info().stream = var0;
  94.    }
  95.  
  96.    public static PrintStream logStream() {
  97.       return info().stream;
  98.    }
  99.  
  100.    public void setFont(Font var1) {
  101.       if (this.debugLog()) {
  102.          info().log(this.toShortString() + " Setting font: " + var1);
  103.       }
  104.  
  105.       this.graphics.setFont(var1);
  106.    }
  107.  
  108.    public Font getFont() {
  109.       return this.graphics.getFont();
  110.    }
  111.  
  112.    public void setColor(Color var1) {
  113.       if (this.debugLog()) {
  114.          info().log(this.toShortString() + " Setting color: " + var1);
  115.       }
  116.  
  117.       this.graphics.setColor(var1);
  118.    }
  119.  
  120.    public Color getColor() {
  121.       return this.graphics.getColor();
  122.    }
  123.  
  124.    public FontMetrics getFontMetrics() {
  125.       return this.graphics.getFontMetrics();
  126.    }
  127.  
  128.    public FontMetrics getFontMetrics(Font var1) {
  129.       return this.graphics.getFontMetrics(var1);
  130.    }
  131.  
  132.    public void translate(int var1, int var2) {
  133.       if (this.debugLog()) {
  134.          info().log(this.toShortString() + " Translating by: " + new Point(var1, var2));
  135.       }
  136.  
  137.       this.xOffset += var1;
  138.       this.yOffset += var2;
  139.       this.graphics.translate(var1, var2);
  140.    }
  141.  
  142.    public void setPaintMode() {
  143.       if (this.debugLog()) {
  144.          info().log(this.toShortString() + " Setting paint mode");
  145.       }
  146.  
  147.       this.graphics.setPaintMode();
  148.    }
  149.  
  150.    public void setXORMode(Color var1) {
  151.       if (this.debugLog()) {
  152.          info().log(this.toShortString() + " Setting XOR mode: " + var1);
  153.       }
  154.  
  155.       this.graphics.setXORMode(var1);
  156.    }
  157.  
  158.    public Rectangle getClipBounds() {
  159.       return this.graphics.getClipBounds();
  160.    }
  161.  
  162.    public void clipRect(int var1, int var2, int var3, int var4) {
  163.       this.graphics.clipRect(var1, var2, var3, var4);
  164.       if (this.debugLog()) {
  165.          info().log(this.toShortString() + " Setting clipRect: " + new Rectangle(var1, var2, var3, var4) + " New clipRect: " + this.graphics.getClip());
  166.       }
  167.  
  168.    }
  169.  
  170.    public void setClip(int var1, int var2, int var3, int var4) {
  171.       this.graphics.setClip(var1, var2, var3, var4);
  172.       if (this.debugLog()) {
  173.          info().log(this.toShortString() + " Setting new clipRect: " + this.graphics.getClip());
  174.       }
  175.  
  176.    }
  177.  
  178.    public Shape getClip() {
  179.       return this.graphics.getClip();
  180.    }
  181.  
  182.    public void setClip(Shape var1) {
  183.       this.graphics.setClip(var1);
  184.       if (this.debugLog()) {
  185.          info().log(this.toShortString() + " Setting new clipRect: " + this.graphics.getClip());
  186.       }
  187.  
  188.    }
  189.  
  190.    public void drawRect(int var1, int var2, int var3, int var4) {
  191.       DebugGraphicsInfo var5 = info();
  192.       if (this.debugLog()) {
  193.          info().log(this.toShortString() + " Drawing rect: " + new Rectangle(var1, var2, var3, var4));
  194.       }
  195.  
  196.       if (this.isDrawingBuffer()) {
  197.          if (this.debugBuffered()) {
  198.             Graphics var6 = this.debugGraphics();
  199.             var6.drawRect(var1, var2, var3, var4);
  200.             var6.dispose();
  201.          }
  202.       } else if (this.debugFlash()) {
  203.          Color var9 = this.getColor();
  204.          int var8 = var5.flashCount * 2 - 1;
  205.  
  206.          for(int var7 = 0; var7 < var8; ++var7) {
  207.             this.graphics.setColor(var7 % 2 == 0 ? var5.flashColor : var9);
  208.             this.graphics.drawRect(var1, var2, var3, var4);
  209.             Toolkit.getDefaultToolkit().sync();
  210.             this.sleep(var5.flashTime);
  211.          }
  212.  
  213.          this.graphics.setColor(var9);
  214.       }
  215.  
  216.       this.graphics.drawRect(var1, var2, var3, var4);
  217.    }
  218.  
  219.    public void fillRect(int var1, int var2, int var3, int var4) {
  220.       DebugGraphicsInfo var5 = info();
  221.       if (this.debugLog()) {
  222.          info().log(this.toShortString() + " Filling rect: " + new Rectangle(var1, var2, var3, var4));
  223.       }
  224.  
  225.       if (this.isDrawingBuffer()) {
  226.          if (this.debugBuffered()) {
  227.             Graphics var6 = this.debugGraphics();
  228.             var6.fillRect(var1, var2, var3, var4);
  229.             var6.dispose();
  230.          }
  231.       } else if (this.debugFlash()) {
  232.          Color var9 = this.getColor();
  233.          int var8 = var5.flashCount * 2 - 1;
  234.  
  235.          for(int var7 = 0; var7 < var8; ++var7) {
  236.             this.graphics.setColor(var7 % 2 == 0 ? var5.flashColor : var9);
  237.             this.graphics.fillRect(var1, var2, var3, var4);
  238.             Toolkit.getDefaultToolkit().sync();
  239.             this.sleep(var5.flashTime);
  240.          }
  241.  
  242.          this.graphics.setColor(var9);
  243.       }
  244.  
  245.       this.graphics.fillRect(var1, var2, var3, var4);
  246.    }
  247.  
  248.    public void clearRect(int var1, int var2, int var3, int var4) {
  249.       DebugGraphicsInfo var5 = info();
  250.       if (this.debugLog()) {
  251.          info().log(this.toShortString() + " Clearing rect: " + new Rectangle(var1, var2, var3, var4));
  252.       }
  253.  
  254.       if (this.isDrawingBuffer()) {
  255.          if (this.debugBuffered()) {
  256.             Graphics var6 = this.debugGraphics();
  257.             var6.clearRect(var1, var2, var3, var4);
  258.             var6.dispose();
  259.          }
  260.       } else if (this.debugFlash()) {
  261.          Color var9 = this.getColor();
  262.          int var8 = var5.flashCount * 2 - 1;
  263.  
  264.          for(int var7 = 0; var7 < var8; ++var7) {
  265.             this.graphics.setColor(var7 % 2 == 0 ? var5.flashColor : var9);
  266.             this.graphics.clearRect(var1, var2, var3, var4);
  267.             Toolkit.getDefaultToolkit().sync();
  268.             this.sleep(var5.flashTime);
  269.          }
  270.  
  271.          this.graphics.setColor(var9);
  272.       }
  273.  
  274.       this.graphics.clearRect(var1, var2, var3, var4);
  275.    }
  276.  
  277.    public void drawRoundRect(int var1, int var2, int var3, int var4, int var5, int var6) {
  278.       DebugGraphicsInfo var7 = info();
  279.       if (this.debugLog()) {
  280.          info().log(this.toShortString() + " Drawing round rect: " + new Rectangle(var1, var2, var3, var4) + " arcWidth: " + var5 + " archHeight: " + var6);
  281.       }
  282.  
  283.       if (this.isDrawingBuffer()) {
  284.          if (this.debugBuffered()) {
  285.             Graphics var8 = this.debugGraphics();
  286.             var8.drawRoundRect(var1, var2, var3, var4, var5, var6);
  287.             var8.dispose();
  288.          }
  289.       } else if (this.debugFlash()) {
  290.          Color var11 = this.getColor();
  291.          int var10 = var7.flashCount * 2 - 1;
  292.  
  293.          for(int var9 = 0; var9 < var10; ++var9) {
  294.             this.graphics.setColor(var9 % 2 == 0 ? var7.flashColor : var11);
  295.             this.graphics.drawRoundRect(var1, var2, var3, var4, var5, var6);
  296.             Toolkit.getDefaultToolkit().sync();
  297.             this.sleep(var7.flashTime);
  298.          }
  299.  
  300.          this.graphics.setColor(var11);
  301.       }
  302.  
  303.       this.graphics.drawRoundRect(var1, var2, var3, var4, var5, var6);
  304.    }
  305.  
  306.    public void fillRoundRect(int var1, int var2, int var3, int var4, int var5, int var6) {
  307.       DebugGraphicsInfo var7 = info();
  308.       if (this.debugLog()) {
  309.          info().log(this.toShortString() + " Filling round rect: " + new Rectangle(var1, var2, var3, var4) + " arcWidth: " + var5 + " archHeight: " + var6);
  310.       }
  311.  
  312.       if (this.isDrawingBuffer()) {
  313.          if (this.debugBuffered()) {
  314.             Graphics var8 = this.debugGraphics();
  315.             var8.fillRoundRect(var1, var2, var3, var4, var5, var6);
  316.             var8.dispose();
  317.          }
  318.       } else if (this.debugFlash()) {
  319.          Color var11 = this.getColor();
  320.          int var10 = var7.flashCount * 2 - 1;
  321.  
  322.          for(int var9 = 0; var9 < var10; ++var9) {
  323.             this.graphics.setColor(var9 % 2 == 0 ? var7.flashColor : var11);
  324.             this.graphics.fillRoundRect(var1, var2, var3, var4, var5, var6);
  325.             Toolkit.getDefaultToolkit().sync();
  326.             this.sleep(var7.flashTime);
  327.          }
  328.  
  329.          this.graphics.setColor(var11);
  330.       }
  331.  
  332.       this.graphics.fillRoundRect(var1, var2, var3, var4, var5, var6);
  333.    }
  334.  
  335.    public void drawLine(int var1, int var2, int var3, int var4) {
  336.       DebugGraphicsInfo var5 = info();
  337.       if (this.debugLog()) {
  338.          info().log(this.toShortString() + " Drawing line: from " + this.pointToString(var1, var2) + " to " + this.pointToString(var3, var4));
  339.       }
  340.  
  341.       if (this.isDrawingBuffer()) {
  342.          if (this.debugBuffered()) {
  343.             Graphics var6 = this.debugGraphics();
  344.             var6.drawLine(var1, var2, var3, var4);
  345.             var6.dispose();
  346.          }
  347.       } else if (this.debugFlash()) {
  348.          Color var9 = this.getColor();
  349.          int var8 = var5.flashCount * 2 - 1;
  350.  
  351.          for(int var7 = 0; var7 < var8; ++var7) {
  352.             this.graphics.setColor(var7 % 2 == 0 ? var5.flashColor : var9);
  353.             this.graphics.drawLine(var1, var2, var3, var4);
  354.             Toolkit.getDefaultToolkit().sync();
  355.             this.sleep(var5.flashTime);
  356.          }
  357.  
  358.          this.graphics.setColor(var9);
  359.       }
  360.  
  361.       this.graphics.drawLine(var1, var2, var3, var4);
  362.    }
  363.  
  364.    public void draw3DRect(int var1, int var2, int var3, int var4, boolean var5) {
  365.       DebugGraphicsInfo var6 = info();
  366.       if (this.debugLog()) {
  367.          info().log(this.toShortString() + " Drawing 3D rect: " + new Rectangle(var1, var2, var3, var4) + " Raised bezel: " + var5);
  368.       }
  369.  
  370.       if (this.isDrawingBuffer()) {
  371.          if (this.debugBuffered()) {
  372.             Graphics var7 = this.debugGraphics();
  373.             var7.draw3DRect(var1, var2, var3, var4, var5);
  374.             var7.dispose();
  375.          }
  376.       } else if (this.debugFlash()) {
  377.          Color var10 = this.getColor();
  378.          int var9 = var6.flashCount * 2 - 1;
  379.  
  380.          for(int var8 = 0; var8 < var9; ++var8) {
  381.             this.graphics.setColor(var8 % 2 == 0 ? var6.flashColor : var10);
  382.             this.graphics.draw3DRect(var1, var2, var3, var4, var5);
  383.             Toolkit.getDefaultToolkit().sync();
  384.             this.sleep(var6.flashTime);
  385.          }
  386.  
  387.          this.graphics.setColor(var10);
  388.       }
  389.  
  390.       this.graphics.draw3DRect(var1, var2, var3, var4, var5);
  391.    }
  392.  
  393.    public void fill3DRect(int var1, int var2, int var3, int var4, boolean var5) {
  394.       DebugGraphicsInfo var6 = info();
  395.       if (this.debugLog()) {
  396.          info().log(this.toShortString() + " Filling 3D rect: " + new Rectangle(var1, var2, var3, var4) + " Raised bezel: " + var5);
  397.       }
  398.  
  399.       if (this.isDrawingBuffer()) {
  400.          if (this.debugBuffered()) {
  401.             Graphics var7 = this.debugGraphics();
  402.             var7.fill3DRect(var1, var2, var3, var4, var5);
  403.             var7.dispose();
  404.          }
  405.       } else if (this.debugFlash()) {
  406.          Color var10 = this.getColor();
  407.          int var9 = var6.flashCount * 2 - 1;
  408.  
  409.          for(int var8 = 0; var8 < var9; ++var8) {
  410.             this.graphics.setColor(var8 % 2 == 0 ? var6.flashColor : var10);
  411.             this.graphics.fill3DRect(var1, var2, var3, var4, var5);
  412.             Toolkit.getDefaultToolkit().sync();
  413.             this.sleep(var6.flashTime);
  414.          }
  415.  
  416.          this.graphics.setColor(var10);
  417.       }
  418.  
  419.       this.graphics.fill3DRect(var1, var2, var3, var4, var5);
  420.    }
  421.  
  422.    public void drawOval(int var1, int var2, int var3, int var4) {
  423.       DebugGraphicsInfo var5 = info();
  424.       if (this.debugLog()) {
  425.          info().log(this.toShortString() + " Drawing oval: " + new Rectangle(var1, var2, var3, var4));
  426.       }
  427.  
  428.       if (this.isDrawingBuffer()) {
  429.          if (this.debugBuffered()) {
  430.             Graphics var6 = this.debugGraphics();
  431.             var6.drawOval(var1, var2, var3, var4);
  432.             var6.dispose();
  433.          }
  434.       } else if (this.debugFlash()) {
  435.          Color var9 = this.getColor();
  436.          int var8 = var5.flashCount * 2 - 1;
  437.  
  438.          for(int var7 = 0; var7 < var8; ++var7) {
  439.             this.graphics.setColor(var7 % 2 == 0 ? var5.flashColor : var9);
  440.             this.graphics.drawOval(var1, var2, var3, var4);
  441.             Toolkit.getDefaultToolkit().sync();
  442.             this.sleep(var5.flashTime);
  443.          }
  444.  
  445.          this.graphics.setColor(var9);
  446.       }
  447.  
  448.       this.graphics.drawOval(var1, var2, var3, var4);
  449.    }
  450.  
  451.    public void fillOval(int var1, int var2, int var3, int var4) {
  452.       DebugGraphicsInfo var5 = info();
  453.       if (this.debugLog()) {
  454.          info().log(this.toShortString() + " Filling oval: " + new Rectangle(var1, var2, var3, var4));
  455.       }
  456.  
  457.       if (this.isDrawingBuffer()) {
  458.          if (this.debugBuffered()) {
  459.             Graphics var6 = this.debugGraphics();
  460.             var6.fillOval(var1, var2, var3, var4);
  461.             var6.dispose();
  462.          }
  463.       } else if (this.debugFlash()) {
  464.          Color var9 = this.getColor();
  465.          int var8 = var5.flashCount * 2 - 1;
  466.  
  467.          for(int var7 = 0; var7 < var8; ++var7) {
  468.             this.graphics.setColor(var7 % 2 == 0 ? var5.flashColor : var9);
  469.             this.graphics.fillOval(var1, var2, var3, var4);
  470.             Toolkit.getDefaultToolkit().sync();
  471.             this.sleep(var5.flashTime);
  472.          }
  473.  
  474.          this.graphics.setColor(var9);
  475.       }
  476.  
  477.       this.graphics.fillOval(var1, var2, var3, var4);
  478.    }
  479.  
  480.    public void drawArc(int var1, int var2, int var3, int var4, int var5, int var6) {
  481.       DebugGraphicsInfo var7 = info();
  482.       if (this.debugLog()) {
  483.          info().log(this.toShortString() + " Drawing arc: " + new Rectangle(var1, var2, var3, var4) + " startAngle: " + var5 + " arcAngle: " + var6);
  484.       }
  485.  
  486.       if (this.isDrawingBuffer()) {
  487.          if (this.debugBuffered()) {
  488.             Graphics var8 = this.debugGraphics();
  489.             var8.drawArc(var1, var2, var3, var4, var5, var6);
  490.             var8.dispose();
  491.          }
  492.       } else if (this.debugFlash()) {
  493.          Color var11 = this.getColor();
  494.          int var10 = var7.flashCount * 2 - 1;
  495.  
  496.          for(int var9 = 0; var9 < var10; ++var9) {
  497.             this.graphics.setColor(var9 % 2 == 0 ? var7.flashColor : var11);
  498.             this.graphics.drawArc(var1, var2, var3, var4, var5, var6);
  499.             Toolkit.getDefaultToolkit().sync();
  500.             this.sleep(var7.flashTime);
  501.          }
  502.  
  503.          this.graphics.setColor(var11);
  504.       }
  505.  
  506.       this.graphics.drawArc(var1, var2, var3, var4, var5, var6);
  507.    }
  508.  
  509.    public void fillArc(int var1, int var2, int var3, int var4, int var5, int var6) {
  510.       DebugGraphicsInfo var7 = info();
  511.       if (this.debugLog()) {
  512.          info().log(this.toShortString() + " Filling arc: " + new Rectangle(var1, var2, var3, var4) + " startAngle: " + var5 + " arcAngle: " + var6);
  513.       }
  514.  
  515.       if (this.isDrawingBuffer()) {
  516.          if (this.debugBuffered()) {
  517.             Graphics var8 = this.debugGraphics();
  518.             var8.fillArc(var1, var2, var3, var4, var5, var6);
  519.             var8.dispose();
  520.          }
  521.       } else if (this.debugFlash()) {
  522.          Color var11 = this.getColor();
  523.          int var10 = var7.flashCount * 2 - 1;
  524.  
  525.          for(int var9 = 0; var9 < var10; ++var9) {
  526.             this.graphics.setColor(var9 % 2 == 0 ? var7.flashColor : var11);
  527.             this.graphics.fillArc(var1, var2, var3, var4, var5, var6);
  528.             Toolkit.getDefaultToolkit().sync();
  529.             this.sleep(var7.flashTime);
  530.          }
  531.  
  532.          this.graphics.setColor(var11);
  533.       }
  534.  
  535.       this.graphics.fillArc(var1, var2, var3, var4, var5, var6);
  536.    }
  537.  
  538.    public void drawPolyline(int[] var1, int[] var2, int var3) {
  539.       DebugGraphicsInfo var4 = info();
  540.       if (this.debugLog()) {
  541.          info().log(this.toShortString() + " Drawing polyline: " + " nPoints: " + var3 + " X's: " + var1 + " Y's: " + var2);
  542.       }
  543.  
  544.       if (this.isDrawingBuffer()) {
  545.          if (this.debugBuffered()) {
  546.             Graphics var5 = this.debugGraphics();
  547.             var5.drawPolyline(var1, var2, var3);
  548.             var5.dispose();
  549.          }
  550.       } else if (this.debugFlash()) {
  551.          Color var8 = this.getColor();
  552.          int var7 = var4.flashCount * 2 - 1;
  553.  
  554.          for(int var6 = 0; var6 < var7; ++var6) {
  555.             this.graphics.setColor(var6 % 2 == 0 ? var4.flashColor : var8);
  556.             this.graphics.drawPolyline(var1, var2, var3);
  557.             Toolkit.getDefaultToolkit().sync();
  558.             this.sleep(var4.flashTime);
  559.          }
  560.  
  561.          this.graphics.setColor(var8);
  562.       }
  563.  
  564.       this.graphics.drawPolyline(var1, var2, var3);
  565.    }
  566.  
  567.    public void drawPolygon(int[] var1, int[] var2, int var3) {
  568.       DebugGraphicsInfo var4 = info();
  569.       if (this.debugLog()) {
  570.          info().log(this.toShortString() + " Drawing polygon: " + " nPoints: " + var3 + " X's: " + var1 + " Y's: " + var2);
  571.       }
  572.  
  573.       if (this.isDrawingBuffer()) {
  574.          if (this.debugBuffered()) {
  575.             Graphics var5 = this.debugGraphics();
  576.             var5.drawPolygon(var1, var2, var3);
  577.             var5.dispose();
  578.          }
  579.       } else if (this.debugFlash()) {
  580.          Color var8 = this.getColor();
  581.          int var7 = var4.flashCount * 2 - 1;
  582.  
  583.          for(int var6 = 0; var6 < var7; ++var6) {
  584.             this.graphics.setColor(var6 % 2 == 0 ? var4.flashColor : var8);
  585.             this.graphics.drawPolygon(var1, var2, var3);
  586.             Toolkit.getDefaultToolkit().sync();
  587.             this.sleep(var4.flashTime);
  588.          }
  589.  
  590.          this.graphics.setColor(var8);
  591.       }
  592.  
  593.       this.graphics.drawPolygon(var1, var2, var3);
  594.    }
  595.  
  596.    public void fillPolygon(int[] var1, int[] var2, int var3) {
  597.       DebugGraphicsInfo var4 = info();
  598.       if (this.debugLog()) {
  599.          info().log(this.toShortString() + " Filling polygon: " + " nPoints: " + var3 + " X's: " + var1 + " Y's: " + var2);
  600.       }
  601.  
  602.       if (this.isDrawingBuffer()) {
  603.          if (this.debugBuffered()) {
  604.             Graphics var5 = this.debugGraphics();
  605.             var5.fillPolygon(var1, var2, var3);
  606.             var5.dispose();
  607.          }
  608.       } else if (this.debugFlash()) {
  609.          Color var8 = this.getColor();
  610.          int var7 = var4.flashCount * 2 - 1;
  611.  
  612.          for(int var6 = 0; var6 < var7; ++var6) {
  613.             this.graphics.setColor(var6 % 2 == 0 ? var4.flashColor : var8);
  614.             this.graphics.fillPolygon(var1, var2, var3);
  615.             Toolkit.getDefaultToolkit().sync();
  616.             this.sleep(var4.flashTime);
  617.          }
  618.  
  619.          this.graphics.setColor(var8);
  620.       }
  621.  
  622.       this.graphics.fillPolygon(var1, var2, var3);
  623.    }
  624.  
  625.    public void drawString(String var1, int var2, int var3) {
  626.       DebugGraphicsInfo var4 = info();
  627.       if (this.debugLog()) {
  628.          info().log(this.toShortString() + " Drawing string: \"" + var1 + "\" at: " + new Point(var2, var3));
  629.       }
  630.  
  631.       if (this.isDrawingBuffer()) {
  632.          if (this.debugBuffered()) {
  633.             Graphics var5 = this.debugGraphics();
  634.             var5.drawString(var1, var2, var3);
  635.             var5.dispose();
  636.          }
  637.       } else if (this.debugFlash()) {
  638.          Color var8 = this.getColor();
  639.          int var7 = var4.flashCount * 2 - 1;
  640.  
  641.          for(int var6 = 0; var6 < var7; ++var6) {
  642.             this.graphics.setColor(var6 % 2 == 0 ? var4.flashColor : var8);
  643.             this.graphics.drawString(var1, var2, var3);
  644.             Toolkit.getDefaultToolkit().sync();
  645.             this.sleep(var4.flashTime);
  646.          }
  647.  
  648.          this.graphics.setColor(var8);
  649.       }
  650.  
  651.       this.graphics.drawString(var1, var2, var3);
  652.    }
  653.  
  654.    public void drawString(AttributedCharacterIterator var1, int var2, int var3) {
  655.       DebugGraphicsInfo var4 = info();
  656.       if (this.debugLog()) {
  657.          info().log(this.toShortString() + " Drawing text: \"" + var1 + "\" at: " + new Point(var2, var3));
  658.       }
  659.  
  660.       if (this.isDrawingBuffer()) {
  661.          if (this.debugBuffered()) {
  662.             Graphics var5 = this.debugGraphics();
  663.             var5.drawString(var1, var2, var3);
  664.             var5.dispose();
  665.          }
  666.       } else if (this.debugFlash()) {
  667.          Color var8 = this.getColor();
  668.          int var7 = var4.flashCount * 2 - 1;
  669.  
  670.          for(int var6 = 0; var6 < var7; ++var6) {
  671.             this.graphics.setColor(var6 % 2 == 0 ? var4.flashColor : var8);
  672.             this.graphics.drawString(var1, var2, var3);
  673.             Toolkit.getDefaultToolkit().sync();
  674.             this.sleep(var4.flashTime);
  675.          }
  676.  
  677.          this.graphics.setColor(var8);
  678.       }
  679.  
  680.       this.graphics.drawString(var1, var2, var3);
  681.    }
  682.  
  683.    public void drawBytes(byte[] var1, int var2, int var3, int var4, int var5) {
  684.       DebugGraphicsInfo var6 = info();
  685.       Font var7 = this.graphics.getFont();
  686.       if (this.debugLog()) {
  687.          info().log(this.toShortString() + " Drawing bytes at: " + new Point(var4, var5));
  688.       }
  689.  
  690.       if (this.isDrawingBuffer()) {
  691.          if (this.debugBuffered()) {
  692.             Graphics var8 = this.debugGraphics();
  693.             var8.drawBytes(var1, var2, var3, var4, var5);
  694.             var8.dispose();
  695.          }
  696.       } else if (this.debugFlash()) {
  697.          Color var11 = this.getColor();
  698.          int var10 = var6.flashCount * 2 - 1;
  699.  
  700.          for(int var9 = 0; var9 < var10; ++var9) {
  701.             this.graphics.setColor(var9 % 2 == 0 ? var6.flashColor : var11);
  702.             this.graphics.drawBytes(var1, var2, var3, var4, var5);
  703.             Toolkit.getDefaultToolkit().sync();
  704.             this.sleep(var6.flashTime);
  705.          }
  706.  
  707.          this.graphics.setColor(var11);
  708.       }
  709.  
  710.       this.graphics.drawBytes(var1, var2, var3, var4, var5);
  711.    }
  712.  
  713.    public void drawChars(char[] var1, int var2, int var3, int var4, int var5) {
  714.       DebugGraphicsInfo var6 = info();
  715.       Font var7 = this.graphics.getFont();
  716.       if (this.debugLog()) {
  717.          info().log(this.toShortString() + " Drawing chars at " + new Point(var4, var5));
  718.       }
  719.  
  720.       if (this.isDrawingBuffer()) {
  721.          if (this.debugBuffered()) {
  722.             Graphics var8 = this.debugGraphics();
  723.             var8.drawChars(var1, var2, var3, var4, var5);
  724.             var8.dispose();
  725.          }
  726.       } else if (this.debugFlash()) {
  727.          Color var11 = this.getColor();
  728.          int var10 = var6.flashCount * 2 - 1;
  729.  
  730.          for(int var9 = 0; var9 < var10; ++var9) {
  731.             this.graphics.setColor(var9 % 2 == 0 ? var6.flashColor : var11);
  732.             this.graphics.drawChars(var1, var2, var3, var4, var5);
  733.             Toolkit.getDefaultToolkit().sync();
  734.             this.sleep(var6.flashTime);
  735.          }
  736.  
  737.          this.graphics.setColor(var11);
  738.       }
  739.  
  740.       this.graphics.drawChars(var1, var2, var3, var4, var5);
  741.    }
  742.  
  743.    public boolean drawImage(Image var1, int var2, int var3, ImageObserver var4) {
  744.       DebugGraphicsInfo var5 = info();
  745.       if (this.debugLog()) {
  746.          var5.log(this.toShortString() + " Drawing image: " + var1 + " at: " + new Point(var2, var3));
  747.       }
  748.  
  749.       if (this.isDrawingBuffer()) {
  750.          if (this.debugBuffered()) {
  751.             Graphics var6 = this.debugGraphics();
  752.             var6.drawImage(var1, var2, var3, var4);
  753.             var6.dispose();
  754.          }
  755.       } else if (this.debugFlash()) {
  756.          int var7 = var5.flashCount * 2 - 1;
  757.          ImageProducer var8 = var1.getSource();
  758.          FilteredImageSource var9 = new FilteredImageSource(var8, new DebugGraphicsFilter(var5.flashColor));
  759.          Image var10 = Toolkit.getDefaultToolkit().createImage(var9);
  760.          DebugGraphicsObserver var11 = new DebugGraphicsObserver();
  761.  
  762.          for(int var13 = 0; var13 < var7; ++var13) {
  763.             Image var12 = var13 % 2 == 0 ? var10 : var1;
  764.             loadImage(var12);
  765.             this.graphics.drawImage(var12, var2, var3, var11);
  766.             Toolkit.getDefaultToolkit().sync();
  767.             this.sleep(var5.flashTime);
  768.          }
  769.       }
  770.  
  771.       return this.graphics.drawImage(var1, var2, var3, var4);
  772.    }
  773.  
  774.    public boolean drawImage(Image var1, int var2, int var3, int var4, int var5, ImageObserver var6) {
  775.       DebugGraphicsInfo var7 = info();
  776.       if (this.debugLog()) {
  777.          var7.log(this.toShortString() + " Drawing image: " + var1 + " at: " + new Rectangle(var2, var3, var4, var5));
  778.       }
  779.  
  780.       if (this.isDrawingBuffer()) {
  781.          if (this.debugBuffered()) {
  782.             Graphics var8 = this.debugGraphics();
  783.             var8.drawImage(var1, var2, var3, var4, var5, var6);
  784.             var8.dispose();
  785.          }
  786.       } else if (this.debugFlash()) {
  787.          int var9 = var7.flashCount * 2 - 1;
  788.          ImageProducer var10 = var1.getSource();
  789.          FilteredImageSource var11 = new FilteredImageSource(var10, new DebugGraphicsFilter(var7.flashColor));
  790.          Image var12 = Toolkit.getDefaultToolkit().createImage(var11);
  791.          DebugGraphicsObserver var13 = new DebugGraphicsObserver();
  792.  
  793.          for(int var15 = 0; var15 < var9; ++var15) {
  794.             Image var14 = var15 % 2 == 0 ? var12 : var1;
  795.             loadImage(var14);
  796.             this.graphics.drawImage(var14, var2, var3, var4, var5, var13);
  797.             Toolkit.getDefaultToolkit().sync();
  798.             this.sleep(var7.flashTime);
  799.          }
  800.       }
  801.  
  802.       return this.graphics.drawImage(var1, var2, var3, var4, var5, var6);
  803.    }
  804.  
  805.    public boolean drawImage(Image var1, int var2, int var3, Color var4, ImageObserver var5) {
  806.       DebugGraphicsInfo var6 = info();
  807.       if (this.debugLog()) {
  808.          var6.log(this.toShortString() + " Drawing image: " + var1 + " at: " + new Point(var2, var3) + ", bgcolor: " + var4);
  809.       }
  810.  
  811.       if (this.isDrawingBuffer()) {
  812.          if (this.debugBuffered()) {
  813.             Graphics var7 = this.debugGraphics();
  814.             var7.drawImage(var1, var2, var3, var4, var5);
  815.             var7.dispose();
  816.          }
  817.       } else if (this.debugFlash()) {
  818.          int var8 = var6.flashCount * 2 - 1;
  819.          ImageProducer var9 = var1.getSource();
  820.          FilteredImageSource var10 = new FilteredImageSource(var9, new DebugGraphicsFilter(var6.flashColor));
  821.          Image var11 = Toolkit.getDefaultToolkit().createImage(var10);
  822.          DebugGraphicsObserver var12 = new DebugGraphicsObserver();
  823.  
  824.          for(int var14 = 0; var14 < var8; ++var14) {
  825.             Image var13 = var14 % 2 == 0 ? var11 : var1;
  826.             loadImage(var13);
  827.             this.graphics.drawImage(var13, var2, var3, var4, var12);
  828.             Toolkit.getDefaultToolkit().sync();
  829.             this.sleep(var6.flashTime);
  830.          }
  831.       }
  832.  
  833.       return this.graphics.drawImage(var1, var2, var3, var4, var5);
  834.    }
  835.  
  836.    public boolean drawImage(Image var1, int var2, int var3, int var4, int var5, Color var6, ImageObserver var7) {
  837.       DebugGraphicsInfo var8 = info();
  838.       if (this.debugLog()) {
  839.          var8.log(this.toShortString() + " Drawing image: " + var1 + " at: " + new Rectangle(var2, var3, var4, var5) + ", bgcolor: " + var6);
  840.       }
  841.  
  842.       if (this.isDrawingBuffer()) {
  843.          if (this.debugBuffered()) {
  844.             Graphics var9 = this.debugGraphics();
  845.             var9.drawImage(var1, var2, var3, var4, var5, var6, var7);
  846.             var9.dispose();
  847.          }
  848.       } else if (this.debugFlash()) {
  849.          int var10 = var8.flashCount * 2 - 1;
  850.          ImageProducer var11 = var1.getSource();
  851.          FilteredImageSource var12 = new FilteredImageSource(var11, new DebugGraphicsFilter(var8.flashColor));
  852.          Image var13 = Toolkit.getDefaultToolkit().createImage(var12);
  853.          DebugGraphicsObserver var14 = new DebugGraphicsObserver();
  854.  
  855.          for(int var16 = 0; var16 < var10; ++var16) {
  856.             Image var15 = var16 % 2 == 0 ? var13 : var1;
  857.             loadImage(var15);
  858.             this.graphics.drawImage(var15, var2, var3, var4, var5, var6, var14);
  859.             Toolkit.getDefaultToolkit().sync();
  860.             this.sleep(var8.flashTime);
  861.          }
  862.       }
  863.  
  864.       return this.graphics.drawImage(var1, var2, var3, var4, var5, var6, var7);
  865.    }
  866.  
  867.    public boolean drawImage(Image var1, int var2, int var3, int var4, int var5, int var6, int var7, int var8, int var9, ImageObserver var10) {
  868.       DebugGraphicsInfo var11 = info();
  869.       if (this.debugLog()) {
  870.          var11.log(this.toShortString() + " Drawing image: " + var1 + " destination: " + new Rectangle(var2, var3, var4, var5) + " source: " + new Rectangle(var6, var7, var8, var9));
  871.       }
  872.  
  873.       if (this.isDrawingBuffer()) {
  874.          if (this.debugBuffered()) {
  875.             Graphics var12 = this.debugGraphics();
  876.             var12.drawImage(var1, var2, var3, var4, var5, var6, var7, var8, var9, var10);
  877.             var12.dispose();
  878.          }
  879.       } else if (this.debugFlash()) {
  880.          int var13 = var11.flashCount * 2 - 1;
  881.          ImageProducer var14 = var1.getSource();
  882.          FilteredImageSource var15 = new FilteredImageSource(var14, new DebugGraphicsFilter(var11.flashColor));
  883.          Image var16 = Toolkit.getDefaultToolkit().createImage(var15);
  884.          DebugGraphicsObserver var17 = new DebugGraphicsObserver();
  885.  
  886.          for(int var19 = 0; var19 < var13; ++var19) {
  887.             Image var18 = var19 % 2 == 0 ? var16 : var1;
  888.             loadImage(var18);
  889.             this.graphics.drawImage(var18, var2, var3, var4, var5, var6, var7, var8, var9, var17);
  890.             Toolkit.getDefaultToolkit().sync();
  891.             this.sleep(var11.flashTime);
  892.          }
  893.       }
  894.  
  895.       return this.graphics.drawImage(var1, var2, var3, var4, var5, var6, var7, var8, var9, var10);
  896.    }
  897.  
  898.    public boolean drawImage(Image var1, int var2, int var3, int var4, int var5, int var6, int var7, int var8, int var9, Color var10, ImageObserver var11) {
  899.       DebugGraphicsInfo var12 = info();
  900.       if (this.debugLog()) {
  901.          var12.log(this.toShortString() + " Drawing image: " + var1 + " destination: " + new Rectangle(var2, var3, var4, var5) + " source: " + new Rectangle(var6, var7, var8, var9) + ", bgcolor: " + var10);
  902.       }
  903.  
  904.       if (this.isDrawingBuffer()) {
  905.          if (this.debugBuffered()) {
  906.             Graphics var13 = this.debugGraphics();
  907.             var13.drawImage(var1, var2, var3, var4, var5, var6, var7, var8, var9, var10, var11);
  908.             var13.dispose();
  909.          }
  910.       } else if (this.debugFlash()) {
  911.          int var14 = var12.flashCount * 2 - 1;
  912.          ImageProducer var15 = var1.getSource();
  913.          FilteredImageSource var16 = new FilteredImageSource(var15, new DebugGraphicsFilter(var12.flashColor));
  914.          Image var17 = Toolkit.getDefaultToolkit().createImage(var16);
  915.          DebugGraphicsObserver var18 = new DebugGraphicsObserver();
  916.  
  917.          for(int var20 = 0; var20 < var14; ++var20) {
  918.             Image var19 = var20 % 2 == 0 ? var17 : var1;
  919.             loadImage(var19);
  920.             this.graphics.drawImage(var19, var2, var3, var4, var5, var6, var7, var8, var9, var10, var18);
  921.             Toolkit.getDefaultToolkit().sync();
  922.             this.sleep(var12.flashTime);
  923.          }
  924.       }
  925.  
  926.       return this.graphics.drawImage(var1, var2, var3, var4, var5, var6, var7, var8, var9, var10, var11);
  927.    }
  928.  
  929.    static void loadImage(Image var0) {
  930.       imageLoadingIcon.loadImage(var0);
  931.    }
  932.  
  933.    public void copyArea(int var1, int var2, int var3, int var4, int var5, int var6) {
  934.       if (this.debugLog()) {
  935.          info().log(this.toShortString() + " Copying area from: " + new Rectangle(var1, var2, var3, var4) + " to: " + new Point(var5, var6));
  936.       }
  937.  
  938.       this.graphics.copyArea(var1, var2, var3, var4, var5, var6);
  939.    }
  940.  
  941.    final void sleep(int var1) {
  942.       try {
  943.          Thread.sleep((long)var1);
  944.       } catch (Exception var3) {
  945.       }
  946.  
  947.    }
  948.  
  949.    public void dispose() {
  950.       this.graphics.dispose();
  951.       this.graphics = null;
  952.    }
  953.  
  954.    public boolean isDrawingBuffer() {
  955.       return this.buffer != null;
  956.    }
  957.  
  958.    String toShortString() {
  959.       StringBuffer var1 = new StringBuffer("Graphics" + (this.isDrawingBuffer() ? "<B>" : "") + "(" + this.graphicsID + "-" + this.debugOptions + ")");
  960.       return var1.toString();
  961.    }
  962.  
  963.    String pointToString(int var1, int var2) {
  964.       StringBuffer var3 = new StringBuffer("(" + var1 + ", " + var2 + ")");
  965.       return var3.toString();
  966.    }
  967.  
  968.    public void setDebugOptions(int var1) {
  969.       if (var1 != 0) {
  970.          if (var1 == -1) {
  971.             if (this.debugOptions != 0) {
  972.                System.err.println(this.toShortString() + " Disabling debug");
  973.                this.debugOptions = 0;
  974.             }
  975.          } else if (this.debugOptions != var1) {
  976.             this.debugOptions |= var1;
  977.             if (this.debugLog()) {
  978.                System.err.println(this.toShortString() + " Enabling debug");
  979.             }
  980.          }
  981.       }
  982.  
  983.    }
  984.  
  985.    public int getDebugOptions() {
  986.       return this.debugOptions;
  987.    }
  988.  
  989.    static void setDebugOptions(JComponent var0, int var1) {
  990.       info().setDebugOptions(var0, var1);
  991.    }
  992.  
  993.    static int getDebugOptions(JComponent var0) {
  994.       DebugGraphicsInfo var1 = info();
  995.       return var1 == null ? 0 : var1.getDebugOptions(var0);
  996.    }
  997.  
  998.    static int shouldComponentDebug(JComponent var0) {
  999.       DebugGraphicsInfo var1 = info();
  1000.       if (var1 == null) {
  1001.          return 0;
  1002.       } else {
  1003.          Object var2 = var0;
  1004.  
  1005.          int var3;
  1006.          for(var3 = 0; var2 != null && var2 instanceof JComponent; var2 = ((Container)var2).getParent()) {
  1007.             var3 |= var1.getDebugOptions((JComponent)var2);
  1008.          }
  1009.  
  1010.          return var3;
  1011.       }
  1012.    }
  1013.  
  1014.    static int debugComponentCount() {
  1015.       DebugGraphicsInfo var0 = info();
  1016.       return var0 != null && var0.componentToDebug != null ? var0.componentToDebug.size() : 0;
  1017.    }
  1018.  
  1019.    boolean debugLog() {
  1020.       return (this.debugOptions & 1) == 1;
  1021.    }
  1022.  
  1023.    boolean debugFlash() {
  1024.       return (this.debugOptions & 2) == 2;
  1025.    }
  1026.  
  1027.    boolean debugBuffered() {
  1028.       return (this.debugOptions & 4) == 4;
  1029.    }
  1030.  
  1031.    private Graphics debugGraphics() {
  1032.       DebugGraphicsInfo var2 = info();
  1033.       if (var2.debugFrame == null) {
  1034.          var2.debugFrame = new JFrame();
  1035.          var2.debugFrame.setSize(500, 500);
  1036.       }
  1037.  
  1038.       JFrame var3 = var2.debugFrame;
  1039.       var3.show();
  1040.       DebugGraphics var1 = new DebugGraphics(var3.getGraphics());
  1041.       var1.setFont(this.getFont());
  1042.       var1.setColor(this.getColor());
  1043.       var1.translate(this.xOffset, this.yOffset);
  1044.       var1.setClip(this.getClipBounds());
  1045.       if (this.debugFlash()) {
  1046.          var1.setDebugOptions(2);
  1047.       }
  1048.  
  1049.       return var1;
  1050.    }
  1051.  
  1052.    static DebugGraphicsInfo info() {
  1053.       DebugGraphicsInfo var0 = (DebugGraphicsInfo)SwingUtilities.appContextGet(debugGraphicsInfoKey);
  1054.       if (var0 == null) {
  1055.          var0 = new DebugGraphicsInfo();
  1056.          SwingUtilities.appContextPut(debugGraphicsInfoKey, var0);
  1057.       }
  1058.  
  1059.       return var0;
  1060.    }
  1061.  
  1062.    static {
  1063.       JComponent.DEBUG_GRAPHICS_LOADED = true;
  1064.       debugGraphicsInfoKey = DebugGraphicsInfo.class;
  1065.    }
  1066. }
  1067.